package com.tuanzi.controller.pages;

import com.tuanzi.ResultVo.ResultVO;
import com.tuanzi.entity.FlowerPot;
import com.tuanzi.entity.User;
import com.tuanzi.service.IndexService;
import com.tuanzi.utils.GetWeather;
import com.tuanzi.utils.Status;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RestController;

import javax.annotation.Resource;
import javax.servlet.http.HttpSession;
import java.io.IOException;
import java.util.List;

/**
 * @author tuanzi
 * @version 1.0
 * @date 2022/3/31 18:02
 */

@RestController
public class IndexController {

    @Resource
    private IndexService indexService;

    /**
     * 主要是进行主页面index的交互
     * 页面数据的交互等工作
     */

    // 无论怎么登录，都必定会访问index页面，所以我们在这里把所有的信息完整的查找出来并赋值到session中
    @RequestMapping(value = "/index",method = RequestMethod.GET)
    public ResultVO index(HttpSession session) throws IOException {

        ResultVO vo;
        User user = (User) session.getAttribute("user");
        System.out.println(user);
        if (user != null){
            // 查找user的所有花盆
            List<FlowerPot> userFlowerPots = indexService.getUserFlowerPots(user.getId());
            for (FlowerPot pot : userFlowerPots) {
                // 对每个pot的每天温度和每周温度进行查找，并且赋值给pot
                pot.setTemperatureDayList(indexService.getDayTemperature(pot.getId()));
                // 对每个pot一周内每天的平均温度进行查找，并赋值给pot
                pot.setTemperatureWeekList(indexService.getWeekTemperature(pot.getId()));
            }

            //查找数据库中湿度的数据


            // 添加所有的花盆进列表
            user.setFlowerPotList(userFlowerPots);

            // 添加未来七天的平均温度进列表
            user.setTemperature(GetWeather.GetWeatherTemperature());

            // 获取成功并返回数据
            vo = new ResultVO(Status.GETSUCCESS,user);

            session.setAttribute("user",user);
        }else {
            vo = new ResultVO(Status.GETFAILED,null);
        }

        return vo;
    }


}
